Skip to main content

Objeto: Tarea

Símbolo: _cds_icon_task_editor.png

La tarea se configura en el objeto. Puede configurar la prioridad, el tipo con el comportamiento temporal y un organismo de control. También puedes añadir PROGRAM llamadas.

El objeto se encuentra en el árbol de dispositivos, debajo del Configuración de tareas.

Pestaña: Configuración

Objeto: _cds_icon_task_editor.png Tarea

Prioridad

Valores posibles: 0..31, donde 0 es la prioridad más alta

Tarea grupal

Asignado grupos de tareas que se puede asignar a núcleos de procesador específicos en multinúcleo

Ejemplo: Tareas de IEC

Nota: El grupo de tareas se muestra entre paréntesis después de la tarea en el árbol de dispositivos.

Importante

Cuando se utiliza un sistema de tiempo de ejecución en Linux, existen dependencias fijas entre grupos de tareas y prioridades. Para más información, ver: Mapeo de prioridades de tareas en un sistema Linux

Escribe

Tipo: _cds_icon_task_periodic.png Cíclico

El procesamiento de la tarea se realiza cíclicamente.

Campo de entrada Intervalo

Requerido

Lapso de tiempo después del cual se reinicia la tarea (tiempo de ciclo de la tarea)

  • Como definición de tiempo en el formato TIME#

    Ejemplo: t#200ms

  • como un numero

    Ejemplo: 200

    Nota: El número se muestra automáticamente en el formato TIME# cuando el campo de entrada vuelva a estar enfocado.

Nota: Las desviaciones de la tarea con respecto al tiempo deseado del ciclo de tareas se muestran durante el tiempo de ejecución como fluctuaciones periódicas en el Pestaña: Monitoreo pestaña.

Unidad de tiempo del intervalo

Si sólo se especifica un número y no una definición de tiempo en el Intervalo campo de entrada, entonces la unidad seleccionada aquí determina las dimensiones de tiempo.

Ejemplo: Sra

Nota: El tiempo de ciclo de una tarea en µs siempre se muestra como un número.

Tipo: _cds_icon_task_event_internal.png Evento

El procesamiento de la tarea comienza controlado por eventos en el flanco ascendente de la variable de evento.

Campo de entrada Evento

Variable global (tipo booleano)

La tarea comienza tan pronto como el valor de la variable cambia de 0 a 1.

Tipo: _cds_icon_task_event_external.png Externo

El procesamiento de la tarea comienza controlado por eventos en el flanco ascendente de la variable de evento.

Cuadro de lista Evento

Lista con eventos dependientes del sistema de destino (tipo booleano)

Nota: El sistema de destino determina qué eventos se admiten y se ofrecen en el cuadro de lista.

Sugerencia: no debe confundirse con los eventos del sistema.

Intervalo

Definición de tiempo en TIME# formato o como un número con una unidad de tiempo

Nota: Solo disponible cuando el evento requiere una definición de tiempo

Tipo: _cds_icon_task_free.png Ejecución libre

El procesamiento de la tarea se reinicia automáticamente en un bucle continuo al inicio del programa y al final de la ejecución tras un cierto tiempo de espera

Importante: Tras completar una ejecución, se espera cierto tiempo antes de volver a ejecutar la tarea. La duración es un porcentaje de la duración del último ciclo.

Nota: No se define un tiempo de ciclo.

Tipo: _cds_icon_task_event_status.png Estado

El procesamiento de la tarea comienza activado por el estado de las variables de evento

Campo de entrada Evento

Variable global (tipo booleano)

Cuando la variable tiene el estado TRUE, la tarea comienza de forma espontánea. La tarea se ejecuta hasta que la variable obtenga FALSE.

Nota: La variable normalmente se restablece en la propia tarea. A diferencia de la tarea de eventos, no se puede omitir ningún evento de esta manera. Cuando se produce un evento, el programador debe guardar un valor antiguo, y este puede cambiar con más frecuencia de la que se verifica. Por lo tanto, si una variable de evento cambia a TRUE Solo por un breve período, el programador podría no detectar este cambio. Esto se puede evitar con una tarea de estado. La variable de estado se establece en TRUE por alguna otra tarea y se restablece por la tarea de estado. Esto garantiza que la tarea se ejecute una vez cada vez que cambia a TRUE.

Importante

Para los buses de campo, es necesaria una matriz de ciclo fijo para garantizar un comportamiento determinado. Por lo tanto, no debe utilizar el Ejecución libre escriba para una tarea de bicicleta en autobús.

Importante

Tenga en cuenta la siguiente diferencia entre los tipos de procesamiento Estado y Evento. Si el evento dado produce TRUE, entonces la condición de inicio de una tarea de tipo Estado se ha completado. Por el contrario, el inicio de una tarea de tipo Evento requiere un cambio del evento de FALSE para TRUE. Si la frecuencia de muestreo del programador de tareas es demasiado baja, el borde ascendente del evento puede pasar desapercibido.

Importante

Al configurar el tiempo de ciclo de la tarea, debe identificar qué sistema de bus se está utilizando actualmente. Por ejemplo, el tiempo de ciclo de la tarea en un sistema de bus CAN debe coincidir con la tasa de baudios establecida actualmente y la cantidad de tramas utilizadas en el bus. Además, los tiempos establecidos para el latido, la protección de nodos y la sincronización siempre deben ser un múltiplo del tiempo del ciclo de la tarea. De lo contrario, se pueden perder tramas CAN.

Para más información, ver: Pestaña: Monitoreo

Perro guardián

Define la supervisión del tiempo para una tarea. Si el sistema de destino admite una configuración de vigilancia avanzada, las siguientes configuraciones pueden estar predefinidas en la descripción del dispositivo.

  • Límite superior e inferior

  • Tiempo de vigilancia predeterminado

  • Tiempo especificado como porcentaje

La configuración de vigilancia predeterminada depende del dispositivo.

Activar

_cas_icon_option_activated.png: El organismo de control está activo.

Si la tarea supera el tiempo establecido actualmente por el organismo de control, la tarea se detiene con un estado de error (excepción). La aplicación en cuya tarea se produjo el error y sus aplicaciones secundarias también se detienen. De esta forma, también se detienen todas las tareas de las aplicaciones afectadas. Luego, lo definido actualmente Sensibilidad también se tiene en cuenta.

Si activas la opción Actualice las E/S en el Configuración de PLC del PLC, entonces CODESYS restablece las salidas a los valores predeterminados definidos.

. Posibles casos:
  • Múltiples tiempos de espera consecutivos:

    Sensibilidad: 0, 1 – excepción en ciclo 1

    Sensibilidad: 2 – excepción en el ciclo 2

    Sensibilidad: n – excepción en el ciclo n

  • Tiempo de espera único: excepción si el tiempo de ciclo del ciclo actual es más largo que (tiempo * sensibilidad). Ejemplo: Tiempo=t#10ms, Sensibilidad=5 (es decir, excepción tan pronto como la tarea única se ejecuta durante más de 50 ms)

Tiempo (por ejemplo, t #200ms)

tiempo de vigilancia

Define (junto con Sensibilidad) el perro guardián de una tarea; descripción en cuanto a Habilitar.

Según el sistema de destino, el lapso de tiempo de monitoreo se proporciona como un porcentaje del intervalo de la tarea, si es posible. En este caso, el cuadro de lista de la unidad está desactivado y muestra %.

Sensibilidad

Número

Define (junto con el perro guardián) el perro guardián para una tarea; descripción en cuanto a Habilitar.

Sugerencia

Uso de las funciones de la biblioteca CmpIecTask.library, puede desactivar un watchdog para ciclos de PLC específicos. Esto es útil para ciclos que demandan más tiempo debido a la inicialización.

ejemplo 539. Ejemplo

Desactivar/reactivar el watchdog:

VAR
hIecTask : RTS_IEC_HANDLE;
END_VAR

hIecTask := IecTaskGetCurrent(0);
IecTaskDisableWatchdog(hIecTask); //Watchdog disabled
...
IecTaskEnableWatchdog(hIecTask); //Watchdog enabled

El perro guardián se utiliza antes de la inicialización con IecTaskDisableWatchDog se apaga por el resto del ciclo y se vuelve a activar automáticamente en el siguiente ciclo.

Después de la inicialización, el perro guardián puede ser IecTaskEnableWatchDog volver a encenderse. Entonces, la supervisión vuelve a estar activa para el resto del ciclo (la ventana de tiempo de vigilancia comienza de nuevo).



Inicializaciones de bloques de funciones que ocurren dentro del FB_Init el método no se ve afectado por esto. Pero había un límite de menos de 30 segundos debido al tiempo de espera de la comunicación. Este límite de tiempo ya no existe desde la versión 3.5 SP18 porque los servicios en línea se ejecutan de forma asincrónica .

Sugerencia

El mecanismo de vigilancia normal de una tarea IEC se activa cuando el tiempo de ejecución de la tarea IEC supera el tiempo de vigilancia.

El perro guardián "Ciclo omitido" se activa cuando la tarea no se inicia en absoluto. Este es el caso cuando la tarea no ejecuta ningún ciclo dentro del máximo de <Hora * Sensibilidad> o <2 * Intervalo>. La causa podría ser el amontonamiento de otras tareas o una falla en el planificador, que ya no habilita la tarea.

Convocatorias del programa

POU (POU objeto con tipo PROGRAM) que son convocados sucesivamente por la tarea

El orden en el que se llaman las POU corresponde al orden de llamadas configurado aquí de arriba a abajo.

_cds_icon_task_add.png Agregar llamada

Abre el Asistente de entrada. Seleccione un PROGRAM POU. Cuando haces clic OK para salir del Input Assistant, se añade a la lista siguiente como una nueva llamada.

_cds_icon_task_delete.png Quitar llamada

Elimina la llamada

_cds_icon_task_edit.pngModificar llamada

Abre el Asistente de entrada para la llamada seleccionada. Selecciona otro PROGRAM POU. La llamada cambia al hacer clic OK para salir del Asistente de entrada.

_cds_icon_task_moveup.png Subir

_cds_icon_task_movedown.png Bajar

Mueve la posición de la llamada hacia arriba o hacia abajo en la lista. El orden de las llamadas cambia en consecuencia durante el tiempo de ejecución.

_cds_icon_task_openpou.png Abrir POU

Abre el editor POU con la declaración y la implementación del PROGRAM POU